home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Utilities / Identify / developer / identify.doc < prev    next >
Text File  |  1998-01-19  |  24KB  |  668 lines

  1. TABLE OF CONTENTS
  2.  
  3. identify.library/IdAlert
  4. identify.library/IdExpansion
  5. identify.library/IdFunction
  6. identify.library/IdHardware
  7. identify.library/IdHardwareNum
  8. identify.library/IdHardwareUpdate
  9.  
  10. identify.library/IdAlert                              identify.library/IdAlert
  11.  
  12.    NAME
  13.         IdAlert - get description of an alert (V3)
  14.  
  15.    SYNOPSIS
  16.         Error = IdAlert(Code,TagList)
  17.         D0.l            D0.l   A0.l
  18.  
  19.         LONG IdAlert(ULONG, struct TagItem *);
  20.  
  21.         Error = IdAlertTags(Code,Tag1,...)
  22.  
  23.         LONG IdAlertTags(ULONG, ULONG,...);
  24.  
  25.    FUNCTION
  26.         Get a human readable description of the alert ('Guru') code.
  27.  
  28.    INPUTS
  29.         Code          -- (ULONG) alert code, as defined in exec/alerts.h
  30.  
  31.         TagList       -- (struct TagItem *) tags that describe further
  32.                          options.
  33.  
  34.    RESULT
  35.         Error         -- (LONG) error code, or 0 if everything went fine.
  36.  
  37.    TAGS
  38.         IDTAG_DeadStr           -- (STRPTR) Alert type string (deadend or
  39.                 recoverable). You may skip this tag if you do not want to get
  40.                 the string.
  41.  
  42.         IDTAG_SubsysStr         -- (STRPTR) String of the subsystem that caused
  43.                 the alert (CPU, exec.library, ...). You may skip this tag if you
  44.                 do not want to get the string.
  45.  
  46.         IDTAG_GeneralStr        -- (STRPTR) General alert cause. You  may skip
  47.                 this tag if you do not want to get the string.
  48.  
  49.         IDTAG_SpecStr           -- (STRPTR) Specified alert cause. You may skip
  50.                 this tag if you do not want to get the string.
  51.  
  52.         IDTAG_StrLength         -- (UWORD) Maximum length of the string buffer,
  53.                 including termination. Defaults to 50.
  54.  
  55.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  56.                 only, TRUE for localized strings. This is useful for applications
  57.                 with English as only language. Defaults to TRUE.
  58.  
  59.    NOTE
  60.         This call is guaranteed to preserve all registers except D0.
  61.  
  62.    BUGS
  63.  
  64.    SEE ALSO
  65.  
  66. identify.library/IdExpansion                      identify.library/IdExpansion
  67.  
  68.    NAME
  69.         IdExpansion - get name of expansion board (V3)
  70.  
  71.    SYNOPSIS
  72.         Error = IdExpansion(TagList)
  73.         D0.l                  A0.l
  74.  
  75.         LONG IdExpansion(struct TagItem *);
  76.  
  77.         Error = IdExpansionTags(Tag1,...)
  78.  
  79.         LONG IdExpansionTags(ULONG,...);
  80.  
  81.    FUNCTION
  82.         Gets the name and class of the expansion and it's manufacturer.
  83.  
  84.    INPUTS
  85.         TagList       -- (struct TagItem *) tags that describe further
  86.                          options.
  87.    RESULT
  88.         Error         -- (LONG) error code, or 0 if everything went fine.
  89.  
  90.                 IDERR_NOLENGTH  -- IDTAG_StrLength has been set to 0!
  91.                 IDERR_BADID     -- IDTAG_ManufID and IDTAG_ProdID were
  92.                         out of range or one of them was missing.
  93.                 IDERR_DONE      -- Checked all expansions using the
  94.                         IDTAG_Expansion tag. This is not really an error.
  95.                 IDERR_SECONDARY -- This expansion is secondary to a primary
  96.                         expansion entry.
  97.  
  98.    TAGS
  99.         IDTAG_ConfigDev         -- (struct ConfigDev *) ConfigDev structure
  100.                 containing all information. You should use this tag if ever
  101.                 possible, since there are more possibilities to recognize and
  102.                 distinguish between a board.
  103.  
  104.         IDTAG_ManufID           -- (UWORD) Manufacturer ID if ConfigDev is not
  105.                 provided. You must also provide IDTAG_ProdID!
  106.  
  107.         IDTAG_ProdID            -- (UBYTE) Product ID if ConfigDev is not
  108.                 provided. You must also provide IDTAG_ManufID!
  109.  
  110.         IDTAG_ManufStr          -- (STRPTR) Pointer to a buffer space for the
  111.                 manufacturer name. You may skip this tag if you do not want
  112.                 to get this string.
  113.  
  114.         IDTAG_ProdStr           -- (STRPTR) Pointer to a buffer space for the
  115.                 product name. You may skip this tag if you do not want to get
  116.                 this string.
  117.  
  118.         IDTAG_ClassStr          -- (STRPTR) Pointer to a buffer space for the
  119.                 product class. You may skip this tag if you do not want to get
  120.                 this string.
  121.  
  122.         IDTAG_StrLength         -- (UWORD) Buffer length, including
  123.                 termination. Defaults to 50.
  124.  
  125.         IDTAG_Expansion         -- [V6] (struct ConfigDev **) Use this tag to
  126.                 easily traverse through the expansion board list. Init the
  127.                 pointed variable with NULL. After each call, you will find
  128.                 the current ConfigDev pointer in this variable. If you are
  129.                 done, this function returns IDERR_DONE and the variable is set
  130.                 to NULL. See example.
  131.  
  132.         IDTAG_Secondary         -- [V7] (BOOL) If set to TRUE, identify will
  133.                 warn about secondary expansions. E.g. some graphic boards
  134.                 create more than one entry in the expansion list. Then, one
  135.                 entry is the primary entry, and any additional are secondary.
  136.                 This tag does only make sense when checking all mounted
  137.                 expansions. Defaults to FALSE. (See Bugs)
  138.  
  139.         IDTAG_ClassID           -- [V8] (ULONG *) The ULONG field will be filled
  140.                 with a numerical class ID of the expansion (see include file:
  141.                 IDCID_...). IMPORTANT: You MUST be prepared to get a number
  142.                 that does not match to any IDCID value. In this case, assume
  143.                 IDCID_MISC.
  144.  
  145.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  146.                 only, TRUE for localized strings. This is useful for applications
  147.                 with English as only language. Defaults to TRUE.
  148.  
  149.    EXAMPLE
  150.         To check all expansion boards, you may use this code:
  151.  
  152.         void PrintExpansions(void)
  153.         {
  154.           struct ConfigDev *expans = NULL;
  155.           char manuf[IDENTIFYBUFLEN];
  156.           char prod[IDENTIFYBUFLEN];
  157.           char pclass[IDENTIFYBUFLEN];
  158.  
  159.           while(!IdExpansionTags(
  160.                   IDTAG_ManufStr ,manuf,
  161.                   IDTAG_ProdStr  ,prod,
  162.                   IDTAG_ClassStr ,pclass,
  163.                   IDTAG_Expansion,&expans,
  164.                   TAG_DONE))
  165.           {
  166.             Printf("Current ConfigDev = 0x%08lx\n",expans);
  167.             Printf("  Manufacturer    = %s\n",manuf);
  168.             Printf("  Product         = %s\n",prod);
  169.             Printf("  Expansion class = %s\n\n",class);
  170.           }
  171.         }
  172.  
  173.    NOTE
  174.         If the manufacturer or the product is not known, the string will be
  175.         filled with its number.
  176.  
  177.         This call is guaranteed to preserve all registers except D0.
  178.  
  179.    BUGS
  180.         You must also provide IDTAG_ProdStr if you want to use IDTAG_Secondary.
  181.  
  182.         There are by far not all existing boards implemented. Please send
  183.         the manufacturer id and name and the products id, name and class
  184.         of all unknown boards to me. My E-Mail: "shred@eratosthenes.starfleet.de"
  185.  
  186.    SEE ALSO
  187.  
  188. identify.library/IdFunction                        identify.library/IdFunction
  189.  
  190.    NAME
  191.         IdFunction - identify function name by offset (V4)
  192.  
  193.    SYNOPSIS
  194.         Error = IdFunction(LibName,Offset,TagList)
  195.         D0.l                A0.l    D0.l   A1.l
  196.  
  197.         LONG IdFunction(STRPTR, LONG, struct TagItem *);
  198.  
  199.         Error = IdFunctionTags(LibName,Offset,Tag1,...)
  200.  
  201.         LONG IdFunctionTags(STRPTR, LONG, ULONG,...);
  202.  
  203.    FUNCTION
  204.         Decodes the offset of the provided library name into function name.
  205.  
  206.         This function requires the .fd files in a drawer with 'FD:' assigned
  207.         to it. All files must have the standard file name format, e.g.
  208.         'exec_lib.fd'.
  209.  
  210.         The appropriate .fd file will be scanned. The result will be
  211.         cached until the identify.library is removed from system.
  212.  
  213.    INPUTS
  214.         LibName       -- (STRPTR) name of the function's library, device
  215.                         or resource. All letters behind the point (and
  216.                         the point itself) are optional. The name is
  217.                         case sensitive.
  218.  
  219.                         Examples: 'exec.library', 'dos', 'cia.resource'.
  220.  
  221.         Offset        -- (LONG) offset of the function. It must be a
  222.                         multiple of 6. You do not need to provide the
  223.                         minus sign.
  224.  
  225.                         Examples: -456, 60
  226.  
  227.         TagList       -- (struct TagItem *) tags that describe further
  228.                         options.
  229.  
  230.    RESULT
  231.         Error         -- (LONG) error code, or 0 if everything went fine.
  232.  
  233.    TAGS
  234.         IDTAG_FuncNameStr       -- (STRPTR) Buffer where the function name
  235.                 will be copied into.
  236.  
  237.         IDTAG_StrLength -- (UWORD) Maximum length of the string buffer,
  238.                 including termination. Defaults to 50.
  239.  
  240.    NOTE
  241.         This call is guaranteed to preserve all registers except D0.
  242.  
  243.    BUGS
  244.         Every line in the .fd file must have a maximum of 254 characters.
  245.         Otherwise the internal offset table may be corrupted (but the
  246.         system won't be harmed). Anyhow, this should be no problem.
  247.  
  248.    SEE ALSO
  249.  
  250. identify.library/IdHardware                        identify.library/IdHardware
  251.    NAME
  252.         IdHardware - get information about the system, string (V3)
  253.  
  254.    SYNOPSIS
  255.         String = IdHardware(Type,TagList)
  256.          D0.l               D0.l   A0.l
  257.  
  258.         STRPTR IdHardware(ULONG, struct TagItem *);
  259.  
  260.         String = IdHardwareTags(Type,Tag1,...)
  261.  
  262.         STRPTR IdHardwareTags(ULONG, ULONG,...);
  263.  
  264.    FUNCTION
  265.         Gets information about the current system environment. The result
  266.         is returned as read only string. This function is fully DraCo
  267.         compatible!
  268.  
  269.         Once a information has been read, it will be cached internally, so
  270.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  271.         contents.
  272.  
  273.    INPUTS
  274.         Type          -- (ULONG) Information type. These types are known:
  275.  
  276.                 IDHW_SYSTEM     -- What system is used?
  277.                         (e. g. "Amiga 4000")
  278.  
  279.                 IDHW_CPU        -- What kind of CPU is available?
  280.                         (e. g. "68060")
  281.  
  282.                 IDHW_FPU        -- What kind of FPU is available?
  283.                         (e. g. "68060")
  284.  
  285.                 IDHW_MMU        -- What kind of MMU is available?
  286.                         (e. g. "68060")
  287.  
  288.                 IDHW_OSVER      -- What OS version is used?
  289.                         (e.g. "V39.106")
  290.  
  291.                 IDHW_EXECVER    -- What exec version is used?
  292.                         (e.g. "V39.47")
  293.  
  294.                 IDHW_WBVER      -- What WorkBench version is used?
  295.                         (e.g. "V39.29")
  296.  
  297.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  298.                         (e.g. "512KB")
  299.  
  300.                 IDHW_CHIPSET    -- What Chipset is available?
  301.                         (e.g. "AGA")
  302.  
  303.                 IDHW_GFXSYS     -- What Graphic OS is used?
  304.                         (e.g. "CyberGraphX")
  305.  
  306.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  307.                         (e.g. "~2.0MB")
  308.  
  309.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  310.                         (e.g. "12.0MB")
  311.  
  312.                 IDHW_RAM        -- Size of complete System RAM
  313.                         (e.g. "~14.0MB")
  314.  
  315.                 IDHW_SETPATCHVER -- [V4] Version of current SetPatch
  316.                         (e.g. "V40.14")
  317.  
  318.                 IDHW_AUDIOSYS   -- [V5] What Audio OS is used?
  319.                         (e.g. "AHI")
  320.  
  321.                 IDHW_OSNR       -- [V5] What AmigaOS is used?
  322.                         (e.g. "3.1")
  323.  
  324.                 IDHW_VMMCHIPRAM -- [V5] Size of virtual Chip RAM
  325.                         (e.g. "0")
  326.  
  327.                 IDHW_VMMFASTRAM -- [V5] Size of virtual Fast RAM
  328.                         (e.g. "40.0MB")
  329.  
  330.                 IDHW_VMMRAM     -- [V5] Size of total virtual RAM
  331.                         (e.g. "40.0MB")
  332.  
  333.                 IDHW_PLNCHIPRAM -- [V5] Size of non-virtual Chip RAM
  334.                         (e.g. "2.0MB")
  335.  
  336.                 IDHW_PLNFASTRAM -- [V5] Size of non-virtual Fast RAM
  337.                         (e.g. "12.0MB")
  338.  
  339.                 IDHW_PLNRAM     -- [V5] Size of total non-virtual RAM
  340.                         (e.g. "14.0MB")
  341.  
  342.                 IDHW_VBR        -- [V6] Vector Base Register contents
  343.                         (e.g. "0x0806C848")
  344.  
  345.                 IDHW_LASTALERT  -- [V6] Last Alert code
  346.                         (e.g. "80000003")
  347.  
  348.                 IDHW_VBLANKFREQ -- [V6] VBlank frequency (see execbase.h)
  349.                         (e.g. "50 Hz")
  350.  
  351.                 IDHW_POWERFREQ  -- [V6] Power supply frequency (see execbase.h)
  352.                         (e.g. "50 Hz")
  353.  
  354.                 IDHW_ECLOCK     -- [V6] System E clock frequency
  355.                         (e.g. "709379 Hz")
  356.  
  357.                 IDHW_SLOWRAM    -- [V6] A500/A2000 "Slow" RAM expansion
  358.                         (e.g. "512.0KB")
  359.  
  360.                 IDHW_GARY       -- [V6] GARY revision
  361.                         (e.g. "Normal")
  362.  
  363.                 IDHW_RAMSEY     -- [V6] RAMSEY revision
  364.                         (e.g. "F")
  365.  
  366.                 IDHW_BATTCLOCK  -- [V6] Battery backed up clock present?
  367.                         (e.g. "Found")
  368.  
  369.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  370.                         (e.g. "Found")
  371.  
  372.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  373.                         (e.g. "603e")
  374.  
  375.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  376.                         (e.g. "200 MHz")
  377.  
  378.                 IDHW_CPUREV     -- [V8] Revision of the main processor, if
  379.                         available (e.g. "Rev 1")
  380.  
  381.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  382.                         (e.g. "50 MHz")
  383.  
  384.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  385.                         (e.g. "50 MHz")
  386.  
  387.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  388.                         (e.g. "80 ns")
  389.  
  390.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  391.                         (e.g. "16 bit")
  392.  
  393.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  394.                         (e.g. "Double")
  395.  
  396.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  397.                         (e.g. "2")
  398.  
  399.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  400.                         (e.g. "AmiTCP/IP")
  401.  
  402.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  403.                         (e.g. "PowerUp")
  404.  
  405.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  406.                         (e.g. "Alice 8374 Rev. 3-4")
  407.  
  408.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  409.                         (e.g. "PAL")
  410.  
  411.         TagList       -- (struct TagItem *) tags that describe further
  412.                          options. You may provide NULL.
  413.  
  414.    TAGS
  415.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  416.                 only, TRUE for localized strings. This is useful for applications
  417.                 with English as only language. Defaults to TRUE.
  418.  
  419.         IDTAG_NULL4NA           -- [V8] (BOOL) TRUE to get NULL pointer instead
  420.                 of a 'not available' string. Defaults to FALSE.
  421.  
  422.    RESULT
  423.         String        -- (STRPTR) String containing the desired
  424.                 information, or NULL if not available. Note that
  425.                 all strings are READ ONLY!
  426.  
  427.    NOTE
  428.         This call is guaranteed to preserve all registers except D0.
  429.  
  430.    BUGS
  431.  
  432.    SEE ALSO
  433.         IdHardwareNum(), IdHardwareUpdate()
  434.  
  435. identify.library/IdHardwareNum                  identify.library/IdHardwareNum
  436.    NAME
  437.         IdHardwareNum - get information about the system, numerical (V6)
  438.  
  439.    SYNOPSIS
  440.         Result = IdHardwareNum(Type,TagList)
  441.          D0.l                  D0.l   A0.l
  442.  
  443.         ULONG IdHardwareNum(ULONG, struct TagItem *);
  444.  
  445.         Result = IdHardwareNumTags(Type,Tag1,...)
  446.  
  447.         ULONG IdHardwareNumTags(ULONG, ULONG,...);
  448.  
  449.    FUNCTION
  450.         Gets information about the current system environment. The result
  451.         is returned numerical. This function is fully DraCo compatible!
  452.  
  453.         Once a information has been read, it will be cached internally, so
  454.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  455.         contents.
  456.  
  457.    INPUTS
  458.         Type          -- (ULONG) Information type. These types are known
  459.                 (see include file and NOTE for detailed description):
  460.  
  461.                 IDHW_SYSTEM     -- What system is used?
  462.                         (include file: IDSYS_...)
  463.  
  464.                 IDHW_CPU        -- What kind of CPU is available?
  465.                         (include file: IDCPU_...)
  466.  
  467.                 IDHW_FPU        -- What kind of FPU is available?
  468.                         (include file: IDFPU_...)
  469.  
  470.                 IDHW_MMU        -- What kind of MMU is available?
  471.                         (include file: IDMMU_...)
  472.  
  473.                 IDHW_OSVER      -- What OS version is used?
  474.                         (version, revision)
  475.  
  476.                 IDHW_EXECVER    -- What exec version is used?
  477.                         (version, revision)
  478.  
  479.                 IDHW_WBVER      -- What WorkBench version is used?
  480.                         (version, revision; 0 if not available)
  481.  
  482.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  483.                         (size in bytes)
  484.  
  485.                 IDHW_CHIPSET    -- What Chipset is available?
  486.                         (include file: IDCS_...)
  487.  
  488.                 IDHW_GFXSYS     -- What Graphic OS is used?
  489.                         (include file: IDGOS_...)
  490.  
  491.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  492.                         (size in bytes)
  493.  
  494.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  495.                         (size in bytes)
  496.  
  497.                 IDHW_RAM        -- Size of complete System RAM
  498.                         (size in bytes)
  499.  
  500.                 IDHW_SETPATCHVER -- Version of current SetPatch
  501.                         (version, revision; 0 if not available)
  502.  
  503.                 IDHW_AUDIOSYS   -- What Audio OS is used?
  504.                         (include file: IDAOS_...)
  505.  
  506.                 IDHW_OSNR       -- What AmigaOS is used?
  507.                         (include file: IDOS_...)
  508.  
  509.                 IDHW_VMMCHIPRAM -- Size of virtual Chip RAM
  510.                         (size in bytes)
  511.  
  512.                 IDHW_VMMFASTRAM -- Size of virtual Fast RAM
  513.                         (size in bytes)
  514.  
  515.                 IDHW_VMMRAM     -- Size of total virtual RAM
  516.                         (size in bytes)
  517.  
  518.                 IDHW_PLNCHIPRAM -- Size of non-virtual Chip RAM
  519.                         (size in bytes)
  520.  
  521.                 IDHW_PLNFASTRAM -- Size of non-virtual Fast RAM
  522.                         (size in bytes)
  523.  
  524.                 IDHW_PLNRAM     -- Size of total non-virtual RAM
  525.                         (size in bytes)
  526.  
  527.                 IDHW_VBR        -- Vector Base Register contents
  528.                         (address)
  529.  
  530.                 IDHW_LASTALERT  -- Last Alert code
  531.                         (ULONG, 0xFFFFFFFF: no last alert yet)
  532.  
  533.                 IDHW_VBLANKFREQ -- VBlank frequency (see execbase.h)
  534.                         (ULONG, Unit Hertz)
  535.  
  536.                 IDHW_POWERFREQ  -- Power supply frequency (see execbase.h)
  537.                         (ULONG, Unit Hertz)
  538.  
  539.                 IDHW_ECLOCK     -- System E clock frequency
  540.                         (ULONG, Unit Hertz)
  541.  
  542.                 IDHW_SLOWRAM    -- A500/A2000 "Slow" RAM expansion
  543.                         (size in bytes)
  544.  
  545.                 IDHW_GARY       -- GARY revision
  546.                         (include file: IDGRY_...)
  547.  
  548.                 IDHW_RAMSEY     -- RAMSEY revision
  549.                         (include file: IDRSY_...)
  550.  
  551.                 IDHW_BATTCLOCK  -- Battery backed up clock present?
  552.                         (BOOL)
  553.  
  554.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  555.                         (BOOL)
  556.  
  557.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  558.                         (include file: IDPPC_...)
  559.  
  560.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  561.                         (ULONG clock in MHz units, or 0: not available)
  562.  
  563.                 IDHW_CPUREV     -- [V8] Revision of the main processor
  564.                         (LONG revision or -1 if not available)
  565.  
  566.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  567.                         (ULONG clock in MHz units)
  568.  
  569.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  570.                         (ULONG clock in MHz units, or 0: not available)
  571.  
  572.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  573.                         (ULONG in ns units, or 0: not available)
  574.  
  575.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  576.                         (ULONG in bit, or 0: not available)
  577.  
  578.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  579.                         (include file: IDCAS_...)
  580.  
  581.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  582.                         (ULONG in times, or 0: not available)
  583.  
  584.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  585.                         (include file: IDTCP_...)
  586.  
  587.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  588.                         (include file: IDPOS_...)
  589.  
  590.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  591.                         (include file: IDAG_...)
  592.  
  593.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  594.                         (include file: IDAM_...)
  595.  
  596.         TagList       -- (struct TagItem *) tags that describe further
  597.                          options. You may provide NULL.
  598.  
  599.    TAGS
  600.         None yet.
  601.  
  602.    RESULT
  603.         Result        -- (ULONG) Numerical result containing the desired
  604.                 information.
  605.  
  606.    NOTE
  607.         If you queried a version, you'll find the version in the *lower*
  608.         UWORD (because it is more important) and the revision in the
  609.         *upper* UWORD.
  610.  
  611.         All memory sizes are always in bytes.
  612.  
  613.         Boolean results are ==0 for FALSE, !=0 for TRUE.
  614.  
  615.         If you have to look up the result in the include file, you might
  616.         also get a numerical result that is beyond the maximum value you'll
  617.         find there. Be prepared for it! In this case, just print "not known"
  618.         or anything similar, or use the IdHardware() result.
  619.  
  620.         This call is guaranteed to preserve all registers except D0.
  621.  
  622.    BUGS
  623.  
  624.    SEE ALSO
  625.         IdHardware(), IdHardwareUpdate()
  626.  
  627. identify.library/IdHardwareUpdate            identify.library/IdHardwareUpdate
  628.    NAME
  629.         IdHardwareUpdate - invalidate the hardware information (V8)
  630.  
  631.    SYNOPSIS
  632.         IdHardwareUpdate()
  633.  
  634.         void IdHardwareUpdate(void);
  635.  
  636.    FUNCTION
  637.         Once a hardware information has been evaluated, the result will be
  638.         stored in an internal cache. All subsequent queries return the cache
  639.         contents, irregarding of any changes.
  640.  
  641.         This function invalidates the cache and forces identify to re-check
  642.         ALL hardware features. Useful if e.g. the amount of memory has changed
  643.         after VMM has been started.
  644.  
  645.         Use this function wisely. DO NOT call it just to make sure to get the
  646.         latest information, let the user decide to do so. Also, DO NOT call
  647.         it when you will only query hardware information that will for sure
  648.         not change while run-time, e.g. CPU.
  649.  
  650.         IDHW_VBR, IDHW_LASTALERT and IDHW_TCPIP are NOT cached, so there is
  651.         absolutely no need to call IdHardwareUpdate() just to check them out.
  652.  
  653.    INPUTS
  654.  
  655.    RESULT
  656.  
  657.    NOTE
  658.         This call is guaranteed to preserve all registers.
  659.  
  660.    BUGS
  661.         Calling this function in identify V8.0 will lead to a system crash.
  662.         This has been fixed in V8.1.
  663.  
  664.    SEE ALSO
  665.         IdHardware(), IdHardwareNum()
  666.  
  667.  
  668.